Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There were two issues:
file:pread() returns eof in the case when the length of the
read is 0 bytes, for any offset. This causes badarg exceptions
later in iolist_size when the 'eof' atom is encountered instead
of a binary
The range-length computation is off by 1 for 0-length ranges:
{Skip, Skip + Length - 1, PartialBody} would result in e.g.
{0, -1, eof}. {0, -1} is invalid HTTP according to
http://tools.ietf.org/html/rfc2616#section-14.16
A byte-content-range-spec with a byte-range-resp-spec whose
last-byte-pos value is less than its first-byte-pos value,
or whose instance-length value is less than or equal to its
last-byte-pos value, is invalid.
This patch fixes both issues.